package net.guerlab.sdk.anubis.entity;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 投诉
 * 
 * @author guer
 *
 */
public class ComplaintInfo {

    /**
     * 商户订单号
     */
    @JsonProperty("partner_order_code")
    private String partnerOrderCode;

    /**
     * 订单投诉编码
     * <ul>
     * <li>230:其他</li>
     * <li>150:未保持餐品完整</li>
     * <li>160:服务态度恶劣</li>
     * <li>190:额外索取费用</li>
     * <li>170:诱导收货人或商户退单</li>
     * <li>140:提前点击送达</li>
     * <li>210:虚假标记异常</li>
     * <li>220:少餐错餐</li>
     * <li>200:虚假配送</li>
     * <li>130:未进行配送</li>
     * </ul>
     */
    @JsonProperty("order_complaint_code")
    private int orderComplaintCode;

    /**
     * 订单投诉描述（order_complaint_code为230时必填）
     */
    @JsonProperty("order_complaint_desc")
    private String orderComplaintDesc;

    /**
     * 订单投诉时间（毫秒）
     */
    @JsonProperty("order_complaint_time")
    private long orderComplaintTime;

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Complaint [partnerOrderCode=");
        builder.append(partnerOrderCode);
        builder.append(", orderComplaintCode=");
        builder.append(orderComplaintCode);
        builder.append(", orderComplaintDesc=");
        builder.append(orderComplaintDesc);
        builder.append(", orderComplaintTime=");
        builder.append(orderComplaintTime);
        builder.append("]");
        return builder.toString();
    }

    /**
     * 返回 商户订单号
     *
     * @return 商户订单号
     */
    public String getPartnerOrderCode() {
        return partnerOrderCode;
    }

    /**
     * 设置商户订单号
     *
     * @param partnerOrderCode
     *            商户订单号
     */
    public void setPartnerOrderCode(
            String partnerOrderCode) {
        this.partnerOrderCode = partnerOrderCode;
    }

    /**
     * 返回 订单投诉编码
     * <ul>
     * <li>230:其他</li>
     * <li>150:未保持餐品完整</li>
     * <li>160:服务态度恶劣</li>
     * <li>190:额外索取费用</li>
     * <li>170:诱导收货人或商户退单</li>
     * <li>140:提前点击送达</li>
     * <li>210:虚假标记异常</li>
     * <li>220:少餐错餐</li>
     * <li>200:虚假配送</li>
     * <li>130:未进行配送</li>
     * </ul>
     *
     * @return 订单投诉编码
     */
    public int getOrderComplaintCode() {
        return orderComplaintCode;
    }

    /**
     * 设置订单投诉编码
     * <ul>
     * <li>230:其他</li>
     * <li>150:未保持餐品完整</li>
     * <li>160:服务态度恶劣</li>
     * <li>190:额外索取费用</li>
     * <li>170:诱导收货人或商户退单</li>
     * <li>140:提前点击送达</li>
     * <li>210:虚假标记异常</li>
     * <li>220:少餐错餐</li>
     * <li>200:虚假配送</li>
     * <li>130:未进行配送</li>
     * </ul>
     *
     * @param orderComplaintCode
     *            订单投诉编码
     */
    public void setOrderComplaintCode(
            int orderComplaintCode) {
        this.orderComplaintCode = orderComplaintCode;
    }

    /**
     * 返回 订单投诉描述（order_complaint_code为230时必填）
     *
     * @return 订单投诉描述
     */
    public String getOrderComplaintDesc() {
        return orderComplaintDesc;
    }

    /**
     * 设置订单投诉描述（order_complaint_code为230时必填）
     *
     * @param orderComplaintDesc
     *            订单投诉描述
     */
    public void setOrderComplaintDesc(
            String orderComplaintDesc) {
        this.orderComplaintDesc = orderComplaintDesc;
    }

    /**
     * 返回 订单投诉时间（毫秒）
     *
     * @return 订单投诉时间
     */
    public long getOrderComplaintTime() {
        return orderComplaintTime;
    }

    /**
     * 设置订单投诉时间（毫秒）
     *
     * @param orderComplaintTime
     *            订单投诉时间
     */
    public void setOrderComplaintTime(
            long orderComplaintTime) {
        this.orderComplaintTime = orderComplaintTime;
    }
}
